package com.lgCore.rpc.common.codec;/**
 * Created by by on 2020/11/11 16:11
 */

import com.lgCore.protoModel.ProtoMsg;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;

/**
 * 编码器
 *@program: sxreader_rpc
 *@author: ligang
 *@create: 2020-11-11 16:11
 */
public class RpcProtobufEncoder extends MessageToByteEncoder<ProtoMsg.Message> {
    @Override
    protected void encode(ChannelHandlerContext channelHandlerContext, ProtoMsg.Message message, ByteBuf byteBuf) throws Exception {
//        //字节流标识
//        byteBuf.writeShort(ProtoConstants.MAGIC_CODE);
//        byte[] bytes = message.toByteArray();// 将对象转换为byte
//        int length = bytes.length;// 读取消息的长度
//        // 先将消息长度写入，也就是消息头
//        byteBuf.writeInt(length);
//        // 消息体中包含我们要发送的数据
//        byteBuf.writeBytes(message.toByteArray());
        //字节流标识
//        byteBuf.writeShort(ProtoConstants.MAGIC_CODE);
//        byte[] bytes = message.toByteArray();// 将对象转换为byte
//        int length = bytes.length;// 读取消息的长度
//        // 先将消息长度写入，也就是消息头
//        byteBuf.writeInt(length);
        // 消息体中包含我们要发送的数据
        byteBuf.writeBytes(message.toString().getBytes());
    }
}
